Skip to content

Redhat Compatible Distro enabling and rpm resolver fixing#379

Merged
yockgen merged 28 commits intomainfrom
rhel-enabling
Feb 13, 2026
Merged

Redhat Compatible Distro enabling and rpm resolver fixing#379
yockgen merged 28 commits intomainfrom
rhel-enabling

Conversation

@yockgen
Copy link
Copy Markdown
Contributor

@yockgen yockgen commented Feb 4, 2026

Merge Checklist

All boxes should be checked before merging the PR

  • The changes in the PR have been built and tested
  • Ready to merge

Description

Redhat Compatible Distro CentOS Stream 10 enabling

Any Newly Introduced Dependencies

How Has This Been Tested?

Reproduce Steps:

 sudo -E go run ./cmd/os-image-composer/  build --cache-dir ./cache/ -v image-templates/rcd10-x86_64-minimal-raw.yml 2>&1 | tee rcd-log.txt
 sudo -E go run ./cmd/os-image-composer/  build --cache-dir ./cache/ -v image-templates/rcd10-x86_64-dlstreamer.yml 2>&1 | tee rcd-intelkernel-log.txt

Verified in qemu for both builds as below shown:

rcd03

Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
…nditional statement

Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Copilot AI review requested due to automatic review settings February 4, 2026 08:38
@yockgen yockgen marked this pull request as draft February 4, 2026 08:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Red Hat Compatible Distro (RCD) as a new provider in the OS image composer, including configuration files, resolver improvements for complex RPM dependencies, and comprehensive test coverage.

Changes:

  • Added RCD provider implementation with repository configuration and image building capabilities
  • Enhanced RPM resolver to handle complex conditional dependencies with parentheses and "if" clauses
  • Added XML metadata caching for debugging RPM repository operations

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
internal/provider/rcd/rcd_test.go Comprehensive test suite for RCD provider functionality
internal/provider/rcd/rcd.go Core RCD provider implementation with Init, PreProcess, BuildImage, and PostProcess methods
internal/ospackage/rpmutils/resolver_test.go Test cases for complex conditional dependency parsing
internal/ospackage/rpmutils/resolver.go Enhanced dependency extraction logic and XML metadata caching
internal/ospackage/rpmutils/helper_test.go Test cases for enhanced dependency name extraction
internal/ospackage/rpmutils/helper.go Enhanced dependency name extraction with support for conditional dependencies
internal/config/schema/os-image-template.schema.json Added redhat-compatible-distro to OS enum
internal/config/schema/os-config.schema.json Added rcd10 to distribution enum
internal/chroot/rpm/installer.go Added redhat-compatible-distro support for GPG key imports
image-templates/rcd10-x86_64-minimal-raw.yml Minimal raw image template for RCD
config/osv/redhat-compatible-distro/rcd10/providerconfigs/*.yml Repository configuration files for x86_64 and aarch64
config/osv/redhat-compatible-distro/rcd10/imageconfigs/defaultconfigs/*.yml Default image configurations for raw, ISO, and initrd images
config/osv/redhat-compatible-distro/rcd10/imageconfigs/additionalfiles/* Additional configuration files for getty services and networking
config/osv/redhat-compatible-distro/rcd10/config.yml OS configuration for x86_64 and aarch64 architectures
config/osv/redhat-compatible-distro/rcd10/chrootenvconfigs/* Chroot environment configurations and local repository setup
cmd/os-image-composer/build.go Registered RCD provider in build command
Comments suppressed due to low confidence (1)

config/osv/redhat-compatible-distro/rcd10/providerconfigs/aarch64_64_repo.yml:1

  • The filename 'aarch64_64_repo.yml' contains a typo with duplicate '64'. It should be 'aarch64_repo.yml' to match the pattern of 'x86_64_repo.yml'.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/config/schema/os-image-template.schema.json Outdated
Comment thread internal/config/schema/os-config.schema.json Outdated
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
…installable

Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
@yockgen yockgen marked this pull request as ready for review February 11, 2026 07:36
@adimoft adimoft requested a review from a team as a code owner February 12, 2026 14:25
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
Signed-off-by: Mah, Yock Gen <yock.gen.mah@intel.com>
@yockgen yockgen requested review from srmungar and removed request for srmungar February 13, 2026 09:24
@yockgen yockgen merged commit 281c72a into main Feb 13, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants